(1) Field of the Invention
The present invention relates to a recording and reproduction apparatus that is a content reproduction apparatus which accumulates contents and reproduces the accumulated contents. In particular, the present invention relates to a setup for receiving a broadcast wave including content made up of video and audio as well as data such as a program that are multiplexed into the broadcast wave in synchronization with each other and transmitted, and for accumulating the video, audio and data, as well as a setup for executing trick play such as fast-forward and rewind of the content while maintaining synchronization between the video and audio and the data such as a program.
(2) Description of the Related Art
Various contents are included in a broadcast wave sent from a broadcast station. Aside from video and audio used in a normal TV show, there are cases where data is included in the contents. There are several methods for sending the data, which can be roughly divided into a method of sending the data chronologically and a method of repeatedly sending the data per set interval. In the former method of sending the data chronologically, for example, data that continues over the course of time is sent in sequential order. This method is suitable for sending large amounts of data over a long period of time, but there is a drawback in that data that could not be received at the timing of the sending cannot be received again. On the other hand, in the latter method of repeatedly sending the data at a set interval, the same data is repeatedly sent any number of times during a fixed period. This method has an advantage in that during the period when the same data is being sent, it is acceptable to receive any one of the repeatedly-sent pieces of data, and thus the timing of receiving is not limited. Data broadcast, represented by BML, and file sending through DSM-CC data carousel are examples of this method. It is unknown, particularly in broadcast, when a recipient will select a channel and commence reception. In the method of sending the data chronologically, when the start of reception falls behind the timing of the sending and thus acquisition of the data, the data cannot be re-acquired. Therefore, when sending data such as an application program along with video and audio in the broadcast wave, the method of repeatedly sending the data per set interval is favorable.
At present, specifications for receiving a broadcast wave that includes video, audio, and an application program and for executing the application program in synchronization with video and audio, as in the above method, have been developed, and are in operation. It is possible to receive the sent application program, load the application program into a terminal, and realize various extra functions by executing the application program, rather than simply viewing the video and audio. This method for sending the application program and loading the application program into the terminal is also called “downloading”. For example, a specification called Digital Video Broadcasting—Multimedia Home Platform (DVB-MHP) ETSIES201812 v1.1.1 (2003-12) has been developed in Europe, and operations according to this specification have already commenced. In addition, Open Cable Application Platform (OCAP) OC-SP-OCAP1.0-114-050119 specification, which provides the same framework in the cable broadcast environment, is being developed in the United States, and actually operations are set to commence. In these specifications, the application program is written in the lava language. Various Application Programming Interfaces (APIs) for tuning, graphics display, and the like are provided in the terminal, and the lava application program can control those functions by calling the APIs.
In addition, in North America, the OCAP-DVROC-SP-OCAP-DVR-I01-040524 specification, which is aimed at adding a function for recording and reproducing the contents in the OCAP specification, is being developed. With this specification, the video, audio, and the Java application program executed in synchronization with each other, which are sent as a cable television broadcast, are recorded as a content, and furthermore, are reproduced in the same manner as when the recorded content is directly reproduced from the broadcast wave. The application program is reproduced in synchronization with the video and audio, in the same manner as direct reproduction from the broadcast wave.
Moreover, with OCAP-DVR, trick play of the contents is realized by recording broadcast contents on a high-speed random-accessible storage medium, such as a hard disk, a semiconductor memory, and the like. Here, the trick play refers to functions for reproducing the contents at an arbitrary speed, from an arbitrary position, and so on, such as fast-forward, rewind, slow-motion, pause, skip, and the like. With OCAP-DVR, the application program loaded into the terminal from the broadcast wave can control the recording and trick play of the content. In other words, APIs for recording and trick play are provided in the terminal, and the Java application program controls each function by calling those APIs.
Typically, control information for synchronization is in advance multiplexed with a broadcast wave in order to execute an application program in synchronization with video and audio. The application programs are executed and terminated one by one in accordance with the synchronization control information. Therefore, it is possible to switch to a suitable application program to be executed for a particular scene of video and audio. By the way, in the case where trick play of content recorded by a terminal is performed according to OCAP-DVR or the like, it is necessary to switch appropriately between application programs depending on a type of the trick play. For example, in the case where video changes to another by fast-forward, an application program associated with the video in synchronization thereto also changes to another in accordance with the reproduction speed. In addition, in the case of skip, an application program, which is, for example, synchronized with the reproduction start position in the video after the skip, is executed.
By the way, in the case of fast-forward, a terminal may be unable to switch and execute an application program in accordance with its own fast-forward speed. For example, it takes time to start up an application program, so that the startup timing of the next application program is lost during the startup of the previous one. In the case of skip play, an application program, which is synchronized with any timing up to a reproduction start position after the skip, is not reproduced, but only an application program which is synchronized with the reproduction start time is executed. Here, there is a problem in the case where the executed application program uses the result of the previously executed application program.
In order to solve this problem, Japanese Translation of PCT International Application 2003-513555 provides a setup for notifying an application program about control information of an application program which has not been detected, during trick play such as skip or the like, because of the execution of the trick play. With this notification, it becomes possible to take a desired action even if application programs are executed in the order different from the primary order.
According to the invention disclosed in Japanese Translation of PCT International Application 2003-513555, it is possible to discover that a particular application program has not been detected, so that a desired action can be taken.
However, since Japanese Translation of PCT International Application 2003-513555 only notifies of the control information of the application program which has not been detected during trick play, there remains a problem in the following case. For example, it is assumed that an application program executes trick play of fast-forward of content including the application program itself. In the case where the execution period of the application program set in the synchronization control information has passed because the content is reproduced by fast-forward at a higher speed than the normal speed, the application program is forced to be terminated. Here, even if the forcibly terminated application program is actually terminated, the current trick play of fast-forward continues. However, it is not always going to be possible to take an approach of terminating the trick play of fast-forward when the application program is forcibly terminated. This is because the current trick play of fast-forward may not be the trick play executed by that forcibly terminated application program. In other words, in order to solve this problem, it is necessary to determine whether or not that application program is identical to the application program which instructed the trick play, when the application program is terminated, and to execute the processing such as continuation and termination of the trick play depending on the situation, when the application program which instructed the trick play is terminated.